//DFS 全排列问题
#include<bits/stdc++.h>
using namespace std;
int n = 0;
const int N = 15;
int st[N];
int ans[N];
void dfs(int dp)
{
	if(dp > n)
	{
		for(int i = 1; i <= n; i++)
		{
			printf("%5d",ans[i]);
		}
		printf("\n");
		return;
	}
	for(int i=1; i<=n; i++)
	{
		if(st[i] == -1)
		{
			st[i] = 1;
			ans[dp] = i;
			dfs(dp+1);
			st[i] = -1;
			
		}
	}	
}
int main()
{
	cin >> n;
	fill(st+1,st+N,-1);
	
	dfs(1);
	return 0 ;
}
